package com.qigao.mall.api;

import com.github.pagehelper.PageInfo;
import com.qigao.mall.channel.dto.ChannelRefundRespDto;
import com.qigao.mall.commons.dto.RefundApplyDto;
import com.qigao.mall.commons.dto.RefundAuditDto;
import com.qigao.mall.commons.dto.RefundOrderResultDto;
import com.qigao.mall.commons.dto.RefundQueryDto;
import com.qigao.mall.commons.enums.Result;
import com.qigao.mall.jdbc.model.TbRefundDetail;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author luiz
 * @Title: com.qigao.mall.api
 * @ProjectName three-mall
 * @date 2019-11-2019/11/20 18:05
 * @Description:退款申请
 */
public interface RefundService {

    Result applyRefund(RefundApplyDto refundApplyDto);

    Result<RefundOrderResultDto> findRefundByOrderNo(String orderNo);

    Result<PageInfo<RefundOrderResultDto>> findRefundList(RefundQueryDto refundQueryDto);

    Result refundAudit(RefundAuditDto refundAuditDto);

    List<TbRefundDetail> findUnRefundList();

    void retryQueryRefund(TbRefundDetail tbRefundDetail);

    void processNotifyOrder(ChannelRefundRespDto channelRefundRespDto);

    void autoRefund(String orderNo, BigDecimal payAmt);
}
